package edu.nf.takeoutdemo.commons.base;

import edu.nf.takeoutdemo.commons.annotation.AutoFill;
import edu.nf.takeoutdemo.commons.enumeration.OperationType;
import io.lettuce.core.dynamic.annotation.Param;

import java.util.List;

/**
 *
 * @author zjl
 * @date 2025/10/20
 */
public interface BaseMapper<T>{
    /**
     * 添加
     * @param t
     */

    void add(T t);

    /**
     * 修改
     * @param t
     */

    void update(T t);

    /**
     * 删除
     * @param id
     */
    void delete(Long id);

    /**
     * 查询所有信息
     * @return
     */
    List<T> list();

    /**
     * 根据Id查询信息
     * @param id
     * @return
     */
    T getById(Long id);

    /**
     * 分页查询所有信息
     * @param pageNum
     * @param pageSize
     * @return
     */
    List<T> pageList(@Param("pageNum") int pageNum,
                     @Param("pageSize") int pageSize);
}
